/**
 * AuWServ.java
 * 2009-4-22 上午08:44:39
 *
 */
package com.esen.auwserv;

import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;

/**
 * @author 何江舟
 *
 * AuWServ主类，用于启动服务器，监听指定端口，并在控制台打印服务器所监听的端口
 */
public class AuWServ {

  private static ServerSocket server = null; // Web服务器套接字

  private static Socket client = null; // 客户端套接字，即Web浏览器

  /**
   * @param args
   */
  public static void main(String[] args) {
    int i = 1, PORT = 8080;

    try {
      server = new ServerSocket(PORT);
      new Thread(new CommandThread()).start();

      System.out.println("Web Server is listening on port " + server.getLocalPort() + ".");

      for (;;) {
        client = server.accept(); // 获得客户端请求的套接字，通过该套接字向客户端发送数据。
        new ConnectionThread(client, i).start();
        ++i;
      }
    }
    catch (Exception e) {
      e.printStackTrace();
    }
    finally {
      if (server != null) {
        try {
          server.close();
        }
        catch (IOException ioe) {
          ioe.printStackTrace();
        }
      }
    }
  }
}
